<?php
// +----------------------------------------------------------------------
// | YotakuCMS
// +----------------------------------------------------------------------
// | Copyright (c) 2016 http://www.yotaku.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: Creatint <creatint@163.com> 
// +----------------------------------------------------------------------

namespace Home\Controller;
use Think\Controller;

/**
 * 前台公共控制器
 * 为防止多分组Controller名称冲突，公共Controller名称统一使用分组名称
 */
class HomeController extends Controller {

	/* 空操作，用于输出404页面 */
	public function _empty(){
		$this->redirect('Index/index');
	}


    protected function _initialize(){

        // 解决没有session_id问题
        if ( $_REQUEST['session_id'] ) {
            header('debug: have session_id='.$_REQUEST['session_id']);
            session_id($_REQUEST['session_id']);
            session_start();
        } else {
            header('debug: have not session_id');
        }


        // 传递控制器名与方法名
        $this->assign('CONTROLLER_NAME',CONTROLLER_NAME);
        $this->assign('ACTION_NAME',ACTION_NAME);
        // 检查是否登录,用户控制器不验证登录状态
        if ( CONTROLLER_NAME != 'User'){
            $this->login();
        }
        trace(USER_TYPE,'USER_TYPE');

        /* 读取站点配置 */
        $config = api('Config/lists');
        C($config); //添加配置

        // 传值用户UID
        $this->assign("uid",session("user_auth.uid"));

        // 判断经销商用户端是否开启
        if( USER_TYPE == 'dealer' && 0 == C('DEALER_ALLOW')){
            $this->error('经销商端已经关闭','/');
        }

        if(!C('WEB_SITE_CLOSE')){
            $this->error('站点已经关闭，请稍后访问~');
        }

    }

	/* 用户登录检测 */
	protected function login(){

		/* 用户登录检测 */
        // 若session空，cookie不空，则赋值给session
        if(empty(session('type')) && !empty(cookie('type'))){
            session('type',cookie('type'));
        }

        // 传值用户类型
        $this->assign('type',session('type'));

        // 检查是否登录
        if ( !is_login() ) {
            header('Location: '.U('User/login'));
            exit;
        }
	}

}
